package gov.nasa.anml.lifted;

import java.util.ArrayList;

import gov.nasa.anml.PDDL;
import gov.nasa.anml.utility.SimpleFloat;
import gov.nasa.anml.utility.SimpleInteger;
import gov.nasa.anml.utility.SimpleString;

public interface Interval extends Time {
	public abstract Constant<SimpleFloat> getStart();
	public abstract Constant<SimpleFloat> getDuration();
	public abstract Constant<SimpleFloat> getEnd();
	public abstract Constant<SimpleInteger> getBra();
	public abstract Constant<SimpleInteger> getKet();

	public abstract ArrayList<PDDL.BooleanExpression> getPDDLConditions();
	public abstract ArrayList<PDDL.Effect> getPDDLEffects();
	public abstract ArrayList<PDDL.Parameter> getPDDLParameters();
	public abstract PDDL.FloatExpression getPDDLDuration();
	public abstract PDDL.Predicate getPDDLExecuting();
	public abstract PDDL.Action getPDDLAction();
	public abstract PDDL.Predicate makePDDLExecuting();
	
	public static final SimpleString startName = new SimpleString("start");
	public static final SimpleString durationName = new SimpleString("duration");
	public static final SimpleString endName = new SimpleString("end");
	public static final SimpleString braName = new SimpleString("bra");
	public static final SimpleString ketName = new SimpleString("ket");
	public static final SimpleString makespanName = new SimpleString("makespan"); 
	
}
